import request from "../../../utils/request"
Page({
  data: {
    isModalShow: false,
    currentContractLink: "", // 存储当前要复制的合同链接（改名避免混淆）
    modalAnimation: '',
    isLoading: true, // 加载状态标识（默认开启加载）
    hasData: true,   // 数据是否存在（用于空状态展示）
    // 合同列表（初始静态数据，请求成功后会被动态数据覆盖）
    contractList: []
  },

  // 查看合同详情
  toLookContract(e) {
    const contractData = e.currentTarget.dataset.contract;
    const name = contractData.name;
    wx.navigateTo({
      url: `/pages/my/lookContract/lookContract?name=${name}`,
    });
  },

  // 显示模态框（仅负责显示弹窗，不处理复制）
  showModal(e) {
    // 从事件数据中获取当前合同的名称和链接
    const contractName = e.currentTarget.dataset.contractname || "长住合同";
    const contractLink = e.currentTarget.dataset.contractlink || "https://example.com/default-contract.pdf";
    
    wx.setPageStyle({
      style: {
        overflow: 'hidden'
      }
    });

    this.setData({
      isModalShow: true,
      modalAnimation: '',
      currentContractName: contractName,
      currentContractLink: contractLink // 存储当前合同的链接，供弹窗内复制使用
    });

    setTimeout(() => {
      this.setData({
        modalAnimation: 'show'
      });
    }, 50);
  },

  // 隐藏模态框
  hideModal() {
    this.setData({
      modalAnimation: 'hide'
    });

    setTimeout(() => {
      this.setData({
        isModalShow: false,
        modalAnimation: ''
      });
      wx.setPageStyle({
        style: {
          overflow: 'auto'
        }
      });
    }, 500);
  },

  // 核心：复制合同链接（专门处理复制逻辑，从currentContractLink取值）
  onCopyLink() {
    const that = this;
    // 从data中获取当前要复制的链接（不再是固定值，而是弹窗传递的真实链接）
    const linkToCopy = that.data.currentContractLink;
    
    wx.setClipboardData({
      data: linkToCopy, // 复制当前合同的真实链接
      success(res) {
        wx.showToast({
          title: "链接复制成功",
          icon: "success",
          duration: 1500
        });
        // 复制成功后可自动关闭弹窗（可选，提升体验）
        that.hideModal();
      },
      fail(res) {
        wx.showToast({
          title: "复制失败，请重试",
          icon: "none",
          duration: 1500
        });
      }
    });
  },

  // 返回上一页
  toMy() {
    wx.navigateBack();
  },

  // 核心：获取微信用户关联的老人合同信息
  async getWxUserElderlyContract() {
    // 1. 获取本地登录用户信息
    const loginUserInfo = wx.getStorageSync('loginUserInfo');
    // 初始化加载状态
    this.setData({ isLoading: true });
    
    try {
      // 2. 发起接口请求
      const res = await request({
        url: '/api/wx-user-elderly-contract/list-by-wx-user',
        method: 'GET',
        data: {
          wxUserId: loginUserInfo?.userId || null // 传递用户ID筛选数据
        },
        loadingText: '加载老人及合同信息中...',
        errorText: '获取老人合同信息失败'
      });

      // 3. 处理接口响应
      if (res.statusCode === 200) {
        console.log("获取的老人合同原始数据", res);
        const elderlyContractList = Array.isArray(res.data) ? res.data : [];
        
        // 适配页面字段格式（确保每个合同都有contractLink）
        const dynamicContractList = elderlyContractList.map(item => {
          // 时间处理函数（去除时分秒）
          const formatDate = (dateStr) => {
            if (!dateStr) return '无';
            const datePart = dateStr.split('T')[0];
            return datePart.replace(/-/g, '.');
          };

          return {
            contractNo: item.contractNo || '无合同编号',
            status: item.contractStatus,
            name: item.elderlyName || '未知老人',
            familyName: loginUserInfo?.userName || '家属',
            signDate: formatDate(item.signTime) || '无签约日期',
            validStart: formatDate(item.startDate) || '无开始时间',
            validEnd: formatDate(item.endDate) || '无结束时间',
            cancelDate: formatDate(item.terminationTime) || '',
            imageUrl: item.contractFile || '/images/home.png', // 图片链接
            contractLink: item.contractFile || "https://example.com/default-contract.pdf" // 合同链接（供复制用）
          };
        });

        this.setData({
          elderlyContractList: elderlyContractList,
          contractList: dynamicContractList,
          isLoading: false,
          hasData: dynamicContractList.length > 0
        });
        console.log('老人合同信息加载成功，每个合同的链接：', dynamicContractList.map(item => item.contractLink));
      } else {
        console.log('获取老人合同信息失败，响应：', res);
        wx.showToast({
          title: res.data?.msg || '获取合同信息失败',
          icon: 'none',
          duration: 2000
        });
        this.setData({ isLoading: false, hasData: false });
      }
    } catch (err) {
      console.error('获取老人合同信息请求异常：', err);
      wx.showToast({
        title: '网络异常，请稍后重试',
        icon: 'none',
        duration: 2000
      });
      this.setData({
        isLoading: false,
        hasData: false,
        contractList: []
      });
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getWxUserElderlyContract();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})